Web services, which provide capabilities that can be supplied or consumed over the Internet, use a distributed technology that enables application-to-application connectivity without human intervention. Examples of web services include: moving customer information from a customer relationship management (“CRM”) system to a portal, delivering a stock quote to a customer, and consolidating inventory information across suppliers to render an aggregated view. These examples partly address larger business problems, such as delivering high-quality customer service, providing subscription based trading services, or automating the interaction between the suppliers and the buyers in a procurement scenario.
A Services Oriented Architecture (or “SOA”) makes use of web services, but adheres to certain principles. These principles include: web services that are agnostic to any system, application, location or user; web services that are reusable; and web services that are loosely-coupled such that they can be linked together or unlinked into their individual forms on demand, in real-time and in an automated fashion. A SOA achieves these principles by using a common language (or data format), such as XML, to communicate and interface with one another.
Despite business benefits, line executives have discovered that building web services at an application level is a time consuming and human intensive process. A true SOA application has services and services interaction at the very core of its architecture. However, very few systems and applications are being built from ground-up to meet the principles of SOA. Lack of tools at an application or system level to address this problem often results in these applications becoming monolithic pieces of functionality that are tightly coupled to a particular user interaction model. Even after the services are built, any subsequent modification requires another round of costly re-engineering.
The disadvantages of the typical SOA application include: (1) the business rules and business information encapsulated by the web service, which are often times hard coded, cannot be externalized or shared with other applications; and (2) the micro level architecture, which is rigid, cannot be modified or expanded without encountering extreme difficulty. These disadvantages have put the organizations adopting web services at a competitive disadvantage—not only do these organizations lag behind their competitors who might be rapidly deploying web services, but these disadvantages also increases the development costs of their information technology without delivering the significant return on invention as promised by SOA.